我创建了一个函数,它以一个以英制为单位输入div的数字,并将该值转换为另一个div中的公制单位。作为js相对较新,我现在意识到千分之一的逗号分隔符不是标准。我试图应用我发现的许多解决方案(其中很多是reg ex's),但是没有一个适合我的需要或已经工作过。简单地说,我只是想让两个div输出的数字都有逗号分隔千分之一的位置。最终,这些数字是以英尺和米表示的高程值。任何见解都将非常感谢...谢谢!
这是我的代码:
<body>
<div id="feet" onload="calculateMeter()">2120</div>
<div id="meter"></div>
<script>
var feet = document.getElementById('feet');
var meter = document.getElementById('meter');
function calculateMeter() {
if (feet.innerHTML > 0) {
meter.innerHTML = (feet.innerHTML * 0.3048).toFixed(1);
feet.toString();
feet = feet.innerHTML.replace(/(\d)(\d{3})\,/, "$1,$2.");
}
}
calculateMeter();
</script>
</body>
答案 0 :(得分:0)
我的功能:
function formatNumberWithCommasDec(d) {
d += "";
var c = d.split(".");
var f = c[1];
var a = c.length > 1 ? c[0] + '.' : '.', flag = false;
var g = f.split('').reverse(), y = 1, s = '';
for (var i = g.length - 1; i >= 0; i--) {
flag = false;
var e = g[i];
var h = (y === 3) ? s = s + e + ',' : s = s + e;
console.log(e);
if(y === 3){
y = 1;
flag = true;
} else {
y = y + 1;
}
}
if(flag){
s = s.substring(0, s.length - 1);
} else {
s = s;
}
return a + s;
}
小提琴:https://jsfiddle.net/6f0tL0ec/1/
更新:发现了一些问题,但现在好不好了
答案 1 :(得分:0)
看来你的问题实际上只是将内容设置为DOM元素。使用How to print a number with commas as thousands separators in JavaScript中的解决方案来格式化数字,您只需要:
function calculateMeter() {
if (feet.innerHTML > 0) {
meter.innerHTML = numberWithCommas*(feet.innerHTML * 0.3048).toFixed(1));
feet.innerHTML = numberWithCommas(feet.innerHTML);
}
}
答案 2 :(得分:0)
这是一个简单的RegEx解决方案
Caused by: java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near ")": syntax error)
at org.sqlite.core.DB.newSQLException(DB.java:890)
Exception in thread "main" org.hibernate.exception.GenericJDBCException: [SQLITE_ERROR] SQL error or missing database (near ")": syntax error)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:52)