我有一个asp应用程序,其中有一个金额列。我需要找出该金额中有多少千、百和十。
例如,如果我的金额为3660,那么 1000的位数-3 100的位数-6 10的位数-6
我需要得到这样的结果。
有人能帮帮我吗?
例如,如果我的金额为3660,那么 1000的位数-3 100的位数-6 10的位数-6
我需要得到这样的结果。
有人能帮帮我吗?
简单的方法是将这个数字除以1000,商就是这个数字中有多少个千。然后用余数除以100,商就是这个数字中有多少个百。最后再用余数除以10,商就是这个数字中有多少个十。
像这样:
quotient = 3660 / 1000; //This will give you 3
remainder = 3660 % 1000; //This will give you 660
然后,
quotient1 = remainder/ 100; //This will give you 6
remainder1 = remainder % 100; //This will give you 60
最后
quotient2 = remainder1 / 10; //This will give you 6
使用类型转换并将数据类型更改为字符串不是更容易吗?
然后,您可以通过检查所选索引位置的值来轻松检查该值。
var number = 1234;
number2 = new String(number);
var thousands = number2[0];
var hundreds = number2[1];
可能对你所做的事情没有用,但对我有用 :)
parseInt()
将结果转换为数字,以便在计算中使用? - Joe IddonFunction SplitNum(theNum)
dim L, i, s, n
n = CStr(theNum)
L = Len(n)
s = ""
for i = 1 to 3
if s <> "" then s = "," & s
if i >= L then
s = "0" & s
else
s = Left(Right(n,i+1),1) & s
end if
next
if L > 4 then s = left(n,L-4) & s
SplitNum = s
End Function
如果你的实际除数不是10的倍数,你需要进行算术运算。VBScript中的整数除法运算符是\
。(整数除法基本上是模数函数的“相反”操作。)
Function GetMultiples(theNum)
dim q, r
q = theNum \ 1000 & ","
r = theNum Mod 1000
q = q & r \ 100 & ","
r = r Mod 100
q = q & r \ 10
GetMultiples = q
End Function
假设我们有数字7354。要找到它的千位数:
variable a = 7354 / 1000
variable b = a % 10
现在存储在变量b中的数是千位数。为了找到百位数:
variable c = 7354 / 100
variable d = a % 10
现在存储在变量d中的数字是百位数。 要找到十位数:
variable e = 7354 / 10
variable f = a % 10
现在存储在变量f中的数字是十位数。 要找到个位数:
7354 % 10
这适用于7354的每个数字,甚至适用于比7354更大的数字。
2021 版本在此:
将您的数字转换为字符串,展开它并像下面这样反转它:
x = 1234
x = [...x.toString()].reverse() // [4, 3, 2, 1]
thous = x[3] // 1
hunds = x[2] // 2
tens = x[1] // 3
units = x[0] // 4
y = [...x.toString()].reverse()[3] // 1 because 1000 has 3 zeros
我想你可以使用一些复杂的10次幂系统来获取这些索引。因此,让我们正是这样做,并将@Villarrealized 2013年的15行代码压缩成2021年的几行代码:
function placeValues(someNumber = 1234) {
x = [...someNumber.toString()].reverse().reduce((p, c, i) => {
p[10**i] = c;
return p;
}, {});
return x; // {1000:1, 100:2, 10:3, 1:4}
}
试试这个...
这里有一个演示如何使用输出的小工具.. http://jsfiddle.net/Villarrealized/L3AxZ/1/
function getMultiplesOfTen(number){
number = parseInt(number);
if(typeof(number)!=="number") return number;
var result = {};
(function breakDown(num){
if(isNaN(num))return num;//if it's invalid return
if(num<=0)return false;
num = num.toFixed(0);//get rid of decimals
var divisor = Math.pow(10,num.length-1),//ex. when num = 300, divisor = 100
quotient = Math.floor(num/divisor);
result[divisor]=quotient;//add it to our object
breakDown(num % divisor);//break down the remainder
})(number);
//return result as an object
return result;
}
该函数将返回一个对象,其中十的倍数为键,数字为值
例如:getMultiplesOfTen(150)=={100:1,10:5}
== 1个100的倍数和5个10的倍数。
计算 1,592÷64 的商的第一位是在个位、十位、百位还是千位?
答案是:选择...个位、十位、百位、千位。
确定商的第一个数字应放置在哪里。不要完成除法。
对于2,370÷24,商的第一个数字应该放在选择...个十百千位。