防止包含丢弃零的数字的Javascript字符串

时间:2018-04-27 16:15:12

标签: javascript string decimal

我有一个javascript函数,它接受不同长度的字符串,其中包含的数字可能是也可能不是以零开头或以小数点后的零结束。

'01234'正在更改为1234号 '123.40'被改为123.4

我需要保留实际的字符串值

 function muteChannel(channelId) 
 {
     alert("channelId:" + channelId);
     return false;
 }

3 个答案:

答案 0 :(得分:1)

听起来channelId是一个数字而不是一个字符串。如果您尝试:

alert("12345.0"); // a string

你会得到12345.0,而如果你试试:

alert(12345.0); // a number

它将删除尾随零。如果是这种情况,那么看起来channelId在你将它传递给这个函数时最后没有零。如果您确定此值在代码中的某个位置是一个字符串,您可能能够找到它被转换的位置并修复它,但是如果不了解更多信息就很难说。

希望有所帮助!

答案 1 :(得分:1)

我最初将我的字符串值作为数字传递。我的代码最初看起来像这样

<p:commandLink 
    id="MuteButton"
    type="button"
    value="Unmute" 
    process="@this"
    update="@form" 
    onclick="muteChannel(#{channel.channelId});"
    rendered="#{channel.muted}" 
    disabled="#{channel.status eq 'Hangup' or 
                channel.status eq 'Holding' or 
                channel.status eq 'Unmuting' or 
                channel.status eq 'Dropping'}"/>


 但现在我在#{channel.channelId}周围添加单引号以将它们保留为字符串

<p:commandLink 
        id="MuteButton"
        type="button"
        value="Unmute" 
        process="@this"
        update="@form" 
        onclick="muteChannel('#{channel.channelId}');"
        rendered="#{channel.muted}" 
        disabled="#{channel.status eq 'Hangup' or 
                    channel.status eq 'Holding' or 
                    channel.status eq 'Unmuting' or 
                    channel.status eq 'Dropping'}"/>

答案 2 :(得分:0)

您可以使用toFixed并告诉它要在代码段中显示多少个小数位:

&#13;
&#13;
var x = 12345.10
var y = 12345.10000
console.log(x.toFixed(2))
console.log(y.toFixed(5))
&#13;
&#13;
&#13;