SMS根据字符数计算

时间:2016-02-15 11:42:26

标签: java android math

我正在尝试为app创建短信计数器。它在前几次测试运行中运行良好,但突然之间没有表现出应有的方式。

我想要做的是根据在EditText中输入的字符数来获取要发送的短信数。

0个字符= 0(短信计数)
160个字符= 1(短信计数)
161个字符= 2(短信计数)
320个字符= 2(短信计数)
321个字符= 3(短信计数)


基本上一个短信可以包含160个字符。我在jsfiddle上尝试了同样的事情并且工作正常。点击这里---> JS Fiddle Link

CODE SNIPPET

我试过在这里发帖,但是只是继续显示CODE NOT FORMATTED ERROR。请在pastebin上找到代码。

Pastebin Link

logcat的

http://pastebin.com/wb1xm7fj

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

您的代码中出现问题的原因是您在调用int之前划分Math.ceil161/160 == 1,而不是1.00625。自Math.ceil(1) == 1开始,实际上无需拨打Math.ceil

对现有代码的简单修复就是将分部写为

msgChar / 160.0

迫使msgChar向上转换为双倍,所以这会表现得像你预期的那样。

您不需要使用Math.ceil来舍入分割的结果:如果在分割之前将denominator-1添加到正分子,则结果将向上舍入到下一个整数:

int msgCount = (numChars + 159) / 160;

Ideone demo