Q
保持领先零时减去
0
A
回答
6
1
由于@Sotirios Delimanolis提到的,你不能与渴望做到这一点。您将需要使用一个字符串,因为longs不能在前面存储额外的零。试试这个:
public String subtractWithZeros(long number1, long number2){
long result = number1 - number2;
String strResult = String.valueOf(result);
String strNum1 = String.valueOf(number1);
String strNum2 = String.valueOf(number2);
int totalLength = Math.max(strNum1.length(), strNum2.length());
int numOfNeededZeros = totalLength - strResult.length();
for(int i = 0;i<numOfNeededZeros;i++){
strResult = "0" + strResult;
}
return strResult;
}
这应该会返回一个很长的结果,并且你想在前面找到零。我假设减法的结果永远不会是负面的。
2
前导零只是标点符号。整个概念只适用于表示数字的字符串。事实上,在你制作这样一个字符串之前,即使“数字”的概念也没有意义。
所以你真正的问题不是“如何在减法时保持前导零?”,而是“当我的结果格式化为字符串时,如何得到前导零”?
因此,例如,要使用(至少)4位数字和前导零打印一个数字,您可以使用out.printf("%04d", theNumber)
。或者在创建字符串时使用相同的格式说明符。
0
虽然这不是这个常见问题的当代答案,但它是一种操纵“printf”和“format”参数的方法。
int number = 5_000;
int length = Integer.toString(number).length();
number -= 4_999;
System.out.printf("%0" + length + "d", number);
// result : 0001
相关问题
- 1. R:保持领先的零
- 2. PHP邮编失去领先零
- 3. 保持领先的零字符串转换为整数
- 4. 是否长期保持领先的零SQLITE插入
- 5. 保持领先的零插入串ITO一个SELECT(MySQL的)
- 6. 出口MySQL查询结果PHP和保持领先的零
- 7. 减去零
- 8. MSACCESS - 日期/时间格式 - 失去领先的零
- 9. 与领先的零
- 10. 经典ASP - 减去数字但保持前导零
- 11. 整数与零转换为字符串(并保持这种领先的零)
- 12. 在我的数字时钟领先零
- 13. 获得领先零的时间
- 14. 保持/插入领先0的
- 15. ruby Date.month与领先的零
- 16. 带领先零的LPAD
- 17. RFID - 领先的零问题
- 18. 添加领先的零Python
- 19. Integer.toBinaryString()失去领先0的
- 20. Linq OrderByDescending但保持零值首先
- 21. jQuery的动画保持减去
- 22. 抑制 “减去零” 从COUT
- 23. 的Python:转换,同时保持领先为str 0的
- 24. 使用JQuery获取表单值时保持领先0?
- 25. 粘贴时保持零位
- 26. VBA格式编号在保存文件上带领先零
- 27. 导入3位数字领先零
- 28. 解析串地龙与领先的零
- 29. 领先的零是什么意思?
- 30. PHP二进制与领先的零
你不能。将其格式化为“String”。 –
如果使用'int'或'long'值,你*保持前导零。只是在打印价值时它们通常会被压制(而且无论如何你都不想看到它们)。 (OTOH,带有'float'和'double'值,你永远不会*保持前导零 - 甚至是第一个非零位。) –
(你需要学习思考*的值*数字和它的*表示*作为两个不同的东西。) –