Convertisseur en chiffres romains
by toubia95
HTML
<div id="display"></div>
CSS
/** PERFORMANCES
* http://www.w3schools.com/js/js_performance.asp
* https://developer.mozilla.org/en-US/docs/Web/API/Performance/now
*/
JavaScript
var num = 34;
// Iván Montes (@DrSlump) on 16 March 2008:
// http://blog.stevenlevithan.com/archives/javascript-roman-numeral-converter#comment-16107
function romanize(arabic) {
var lookup = {
M: 1000,
CM: 900,
D: 500,
CD: 400,
C: 100,
XC: 90,
L: 50,
XL: 40,
X: 10,
IX: 9,
V: 5,
IV: 4,
I: 1
},
roman = '',
i;
for (i in lookup) {
while (arabic >= lookup[i]) {
roman += i;
arabic -= lookup[i];
}
}
return roman;
}
// Iván Montes (@DrSlump) on 16 March 2008:
// http://blog.stevenlevithan.com/archives/javascript-roman-numeral-converter#comment-16129
function deromanize(roman) {
var roman = roman.toUpperCase(),
lookup = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
M: 1000
},
arabic = 0,
i = roman.length;
while (i--) {
if (lookup[roman[i]] < lookup[roman[i + 1]]) arabic -= lookup[roman[i]];
else arabic += lookup[roman[i]];
}
return arabic;
}
// Performance.now() polyfill (aka perf.now())
// Paul Irish, 2015
// https://gist.github.com/paulirish/5438650
(function () {
if ("performance" in window == false) {
window.performance = {};
}
Date.now = (Date.now || function () { // thanks IE8
return new Date().getTime();
});
if ("now" in window.performance == false) {
var nowOffset = Date.now();
if (performance.timing && performance.timing.navigationStart) {
nowOffset = performance.timing.navigationStart
}
window.performance.now = function now() {
return Date.now() - nowOffset;
}
}
})();
// Calcul de la vitesse d'execution de scripts
// Gilles Toubiana 16/11/2015
function speed() {
'use strict';
var result = "",
i, j, p1, p2, func, duree = 1000,
...