Javascript 处理小数
我需要帮助解决这个十进制问题。通过在同一文本框上制作英尺和英寸。 在以英尺(ft)为单位计算一个人的身高时,情况是5.12ft=6ft,5.13是不必要的(不是真的,我只是想以英尺和英寸为单位) 有些人会把它变成两个不同的文本框,分别是英尺和英寸。但我只想尝试一个文本框,它不会达到5.12或在文本框的情况下,将只接受高达.11英寸 任何帮助都将不胜感激Javascript 处理小数,javascript,html,Javascript,Html,我需要帮助解决这个十进制问题。通过在同一文本框上制作英尺和英寸。 在以英尺(ft)为单位计算一个人的身高时,情况是5.12ft=6ft,5.13是不必要的(不是真的,我只是想以英尺和英寸为单位) 有些人会把它变成两个不同的文本框,分别是英尺和英寸。但我只想尝试一个文本框,它不会达到5.12或在文本框的情况下,将只接受高达.11英寸 任何帮助都将不胜感激 提前感谢。您通常通过分别计算整个部分和小数部分来处理此问题 要找到小数部分(0.12),只需从原始部分(5.12)减去整个部分(5)。当然,乘以
提前感谢。您通常通过分别计算整个部分和小数部分来处理此问题 要找到小数部分(0.12),只需从原始部分(5.12)减去整个部分(5)。当然,乘以一英尺的英寸数
var height = 5.12;
var feet = Math.floor(height);
var inches = Math.floor( 12.0 * (height-feet) );
我已经把这四舍五入了。如果您想绕到最近的位置,可以执行以下操作:
var inches = Math.round( 12.0 * (height-feet) );
if( inches == 12 ) {
feet++;
inches = 0;
}
除了每次输入字符时解析字符串外,我看不到任何解决方法 根据小数点将字符串拆分为英尺和英寸,并且不允许任何长度超过11英寸的字符 您还可以在用户输入完字符串后解析该字符串,并通知她表单是否不正确或不合理 但另一个问题是:你这样做而不是两个下拉列表有什么特别的原因吗?您可以用0到11填充英寸,这很简单。一种可能是使用我的:
您需要发布一些代码。哦,我可能误解了您的问题。也许你问的是如何做GUI,而不是如何做数学代码>不起作用。您需要乘以10或100,这取决于小数点是>还是<10(或<代码>变量英寸=+(高度+“”).substr((高度+“”).indexOf(‘.)+1)@cWalves是的,我假设从十进制英尺到英尺/英寸的转换,即5.12英尺将是5英尺和1英寸。如果没有帮助,我将删除我的答案。@paddy--很有帮助,你只需要修复
英寸
var:)
$('#i4').iMask({
type : 'fixed'
, mask : '9\' 99\"'
, sanity : function( val ){
val = /([\d ]\' )([\d ])([\d ])\"/.exec( val );
(val[2]>1) && (val[3]=val[2]) && (val[2]='0');
(val[2]==1) && (val[3]>1) && (val[3]='1');
val.shift();
return val.join('');
}
})