为了弄清起点小说如何算字扣钱,我特意注册了作家账号是奉壹呀

起点没有公布计数系统的统计标准。所以就有了本文,我们来猜一猜嘛。

在书架上随手找了一本之前订阅过的书,找了章公众章节。如下所示,共858字。

找个在线的OCR把图片识别成文字,再手动检查一遍,确保没有错漏。然后使用javaString的length()方法看看。为了方便感兴趣的同学,我把识别出来的文字也发出来。

几个猜测,首先中文的任意字,字符肯定是算1个字符长度的,比如!,(,),。,甚至中文多个句号当省略号。。。。。。也会被计算为6个字。然后英文单词只会计算成一个长度。其次英文输入法中的...也只会计算一个长度。

暴力点,直接先来一波验证一下。

以下测试代码将英文输入法下的...替换成一个字符,然后将连续的数字和英文单词(包含创造出的网络词汇英文缩写,或者叫连接的英文字母,拼音)也当成一个字符长度。具体做法是先替换为空,再在后边统计的时候补上个数。

Stringtemp=text.trim().replace("...",".").replace("..",".");Strings="\\d+.\\d+|\\w+";Patternpattern=Pattern.compile(s);Matcherma=pattern.matcher(temp);Listwords=newArrayList<>();while(ma.find()){Stringword=ma.group();words.add(word);temp=temp.replace(word,"");}System.out.println(temp.length()+words.size());输出856。但是起点计数系统统计出来是858。差了2个字。

这章的标题是4个字,如果是标题的原因,那应该是差4个字,所以标题应该是不计数的。

也有可能是图片转文字的差异,可能是一些符号()不太容易分辨是哪种输入法,还有看不出来是分隔符还是破折号的"———"造成的差异。

更直接点,我下载了一个起点的作家助手,将上述文字直接输到公众章节,让起点计数系统统计,结果与我本地代码统计是一样的。

从侧面证明上述的猜测是对的。

所以起点真就是这样直接使用String.length()计算出来的?

为了更加的严谨,我再添加了一部小说,《重生之不做程序员》。

第一章《英雄迟暮》,正文内容为“SUN公司被Oracle收购,是否意味着java被逼上了死路?”

Stringtext2="sum公司被Oracle收购,是否意味着java被逼上了死路?";Stringtemp=text2.trim().replace("...",".").replace("..",".");Strings="\\d+.\\d+|\\w+";Patternpattern=Pattern.compile(s);Matcherma=pattern.matcher(temp);Listwords=newArrayList<>();while(ma.find()){Stringword=ma.group();words.add(word);temp=temp.replace(word,"");}System.out.println(temp.length()+words.size());输出21.

特殊字符呢?比如它被算作了两个字符。

为什么呢?直接复制过去,可以看到它是两个UTF16编码。所以长度为2。String.length()其实统计的是这个编码单元数。

如果有特殊字符编码的文本,需要精确统计字符数,可以使用codePointCount方法。在原来代码基础上添加以下测试代码。

Stringb="";System.out.println(temp.length()+b.length()+words.size());System.out.println(temp.length()+b.codePointCount(0,b.length())+words.size());分别输出

总之,它都能从侧面证明,起点小说统计字数大概率就是使用的length(),同时将连续数字,英文单词算作单个字符,同时英文输入法下的省略号等符号算作一个。同时中文输入法下的任意每个字符都计数。特殊字符长度需要看它的字符串中的Unicode代码单元的数目。

众所周知,在java里,涉及到钱的计算,必须使用BigDecimal,才能精确计算。

如果使用double,float会丢失精度。

假设一个VIP章节共有字数4689,普通会员每千字5分钱,那么订阅该章节需要多少钱?

使用double/float用两种方法进行计算

intwordCount=4689;intmonovalent=5;floatmoney=(wordCount*monovalent)/1000;System.out.println(money);doublemoney2=(wordCount/1000)*monovalent;System.out.println(money2);分别输出

23.020.0先乘后除只是丢失精度。先除后乘不仅仅丢失精度,丢失的精度经过乘法放大,其结果就相差越大了。

通过强转能得到正确结果,这里只是演示。

floatmoney=(float)(wordCount*monovalent)/1000;doublemoney2=((double)wordCount/1000)*monovalent;使用BigDecimal进行计算

System.out.println(BigDecimal.valueOf(wordCount).divide(BigDecimal.valueOf(1000),2,RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(monovalent)).doubleValue());System.out.println(BigDecimal.valueOf(wordCount).multiply(BigDecimal.valueOf(monovalent)).divide(BigDecimal.valueOf(1000),2,RoundingMode.HALF_UP).doubleValue());输出

23.4523.45这里使用bigdecimal有两点需要注意:

doublenumber=2.352356234234236D;System.out.println(number);System.out.println(newBigDecimal(number));//输出近似值System.out.println(BigDecimal.valueOf(number));System.out.println(newBigDecimal(String.valueOf(number)));输出

2.3523562342342362.3523562342342358988389605656266212463378906252.3523562342342362.352356234234236进行divide除法操作时,需设置RoundingMode,避免除不尽出现无限循环小数时,抛出异常Non-terminatingdecimalexpansion;noexactrepresentabledecimalresult.不管是先乘后除还是先除后乘,都能得到正确的结果。

同时上述的计算结果单位都是:分。23.445分,四舍五入为23.45分。

我们知道日常交易金额的最低单位为分,如果再精确就出现了厘。

对于厘的处理,起点的选择是直接抹去小数部份。不管23.445还是23.45都直接处理为23分钱。

同时起点不支持每章节直接使用人民币付费,而是先充值为起点币,1起点币=1分钱。所以订阅上述章节需支付23起点币。

这种方式,余额没有小数点。存储时可以直接使用int类型,充值扣费时也没有小数点精度的问题。

随便一搜,网上随处可见的,起点霸道合同,压榨作家写手的新闻。23.45抹零,23.99也抹零。

那么,奇了怪了,起点为什么会在付费金额这里直接抹零了呢?蚊子再小也是肉啊!

假设银行有如下10笔利息

0.000、0.001、0.002、0.003、0.0040.005、0.006、0.007、0.008、0.009如果采取传统的四舍五入方法的话,银行的盈利分别为

0,+0.001,+0.002,+0.003,+0.004-0.005,-0.004,-0.003,-0.002,-0.001这样相加,可以得知,银行亏损了0.005。

为了应对这种情况,银行家们开发了一种新的算法。故名银行家算法。

在java中,BigDecimal提供了一种ROUND_HALF_EVEN的舍入方式,即为银行家舍入法。

以下是代码演示:

/***只保留两位数的情况下,看第3位小数,如果第3位小数不为5,则直接四舍五入*如果第3位小数为5,如果第4位小数不为0,则统一进位*如果第4位小数为0或者叫没有第4位小数,则看第2位小数的奇偶*第2位小数为奇数舍去*第2位小数为偶数则进位*/System.out.println(newBigDecimal(String.valueOf("1.256")).setScale(2,BigDecimal.ROUND_HALF_EVEN));//1.26System.out.println(newBigDecimal(String.valueOf("1.254")).setScale(2,BigDecimal.ROUND_HALF_EVEN));//1.25System.out.println(newBigDecimal(String.valueOf("1.2551")).setScale(2,BigDecimal.ROUND_HALF_EVEN));//1.26System.out.println(newBigDecimal(String.valueOf("1.245")).setScale(2,BigDecimal.ROUND_HALF_EVEN));//1.24System.out.println(newBigDecimal(String.valueOf("1.255")).setScale(2,BigDecimal.ROUND_HALF_EVEN));//1.26输出

1.261.251.261.241.26对于起点为什么没有使用银行家算法,而是对小数部份直接抹零,我只能理解是钱太好赚了,它提供了一个平台,哪怕一只鸟飞过平台留下一根毛,起点也要分一半。这点零头就不计较了。

但我自己都不信,我可能懂那么一点技术,但我不懂资本家。

同时,谈到银行家算法处理利息,对于起点也有一个关于利息的疑问。

但这能证明起点不给利息合法吗?

你能想象吗?淘宝或者京东,购物时不支持三方支付,必须要先购买淘宝币或者京东币,然后再用币支付。同时,剩下的币不支持提现,也没利息?如果你不同意这种支付方式,就不能购物。

假如我充值了一百块钱,订阅了某个章节使用了几毛钱,然后索然无味,没再继续订阅后续章节,那账户里剩下的钱一直冻结在专用账户里没有用作它途产生非法的高额利润?就算没有,这笔钱躺在银行账户里本身也是有利息的,这部份利息肯定是没有向我本人发放的,这合法吗?

我想这才是起点在订阅时直接对小数点抹零的动机吧。背后的原因令人三级烫伤。

至于其它的,安卓端充值不能在苹果端消费(最早WEB端也不能),

订阅不是永久性的,已订阅商品可能需重复购买这些感觉都是小事了(给人的感觉就是,起点拿订阅打赏的一半的时候毫不手软,出问题的时候独善其身赶紧撇清)。

THE END
1.支付宝不能收款了怎么办支付宝不能收款了怎么办 1、打开并解锁手机,点击支付宝图标后登录相关支付宝账户; 2、在支付宝主界面下,点击右下角我的图标; 3、在我的相关界面下,点击右上角的设置按钮,打开设置页面; 4、在设置界面下点击账号管理选项,打开账号管理页面; 5、点击身份认证选项,按照提示步骤完成实名认证即可开启收款服务。https://m.tianqiyubao4.com/news_2559918.shtml
2.支付宝限制收款怎么解除支付宝限制收款只能是联系客服才可以解除。支付宝被限制收款的原因,一种是你的号操作频繁被限制收款。一种就是你的收款已经超出了当天的额度。而是否允许解除限制收款状态取决于用户违约使用账户的具体情形,及支付宝对其按照通知邮件提交的相关凭证的核查结果。支付宝会在http://m.15tqc.com/show3419031/
3.进来教你怎样推销省油一号怎样挣钱润滑活塞和缸套;修复划痕和凹槽。油环携带机油润滑发动机的吸气冲程和做功冲程,满足发动机不低于30万公里行驶里程的需要;省油1号专有成分润滑压缩冲程和排气冲程,满足发动机不低于30万公里行驶里程需要。省油1号延长发动机行驶里程30万公里值多少钱?以家庭用车、黑车、出租车为列计算 ...https://www.meipian.cn/1n2it9or
4.支付宝商家码突然收不了花呗的钱怎么回事?支付宝商家码突然收不了花呗的钱,很可能是以下几点原因导致的: 1.消费金额超出了规定的限额; 2.花呗账户状态有异,可能因还款逾期等不良行为被系统风控冻结了; 3.系统监测到当前交易存在一定风险,比如怀疑非本人操作,为规避风险,于是就限制了交易; 4.后台系统正在进行维护、升级当中,暂时关闭了花呗; 5.手机设备...https://www.csai.cn/wenda/955440.html
1.支付宝被限制收款14天怎么办?支付宝被限制收款相关问题解答一、支付宝被限制收款14天怎么办?当支付宝账户被限制收款14天时,用户首先需要冷静分析限制的原因,然后采取相应的措施进行解决。以下是一些建议:1. 了解限制原因: - 登录支付宝账户,查看限制通知或相关提示,了解被限制的具体原因。 - 常见原因可能包括账户安全问题、交易异常... ...https://www.milguo.com/notice/a-3542.html
2.支付宝永久限制收款怎么解除支付宝永久限制收款是无法恢复的。 用户账号被永久限制收款,先联系支付宝客服。等待客服的回复,客服解决不了,只能重新注册新的账号使用。 以上就是支付宝永久限制收款怎么解除-支付宝永久限制收款解除方法一览全部内容了,希望对大家有帮助!更多内容请关注攻略库...https://www.gonglueku.com/rjjck/274728.html
3.支付宝账户异常解决方法及原因,你知道吗?【第五条】您的支付宝账户出现异常需要多久才能解决? 一旦发现异常原因,可以实时解决。支付宝账户异常可能是因为支付宝没有绑定手机号或者有异常交易记录,而当前的支付网络环境可能不是很安全。这种情况下,用户可以绑定自己常用的手机号来解决异常。如果已经绑定手机号,可以更换安全的网络环境进行交易,或者联系客服了解您...http://www.bjhwtx.com/h-nd-230291.html
4.支付宝限制收款怎么解决?限制收款多久能恢复?在数字化支付时代,支付宝限制收款问题让不少用户感到困扰。如何解决这一问题,成为了许多人关注的焦点。我们也会给出解决支付宝限制收款的方法,供各位参考。 一、支付宝限制收款怎么解决? 1.检查账户信息:确认账户信息是否完整、准确,包括实名认证、绑定的银行卡等信息。如有误,及时更正。 https://www.kaitao.cn/article/20240818164410.htm
5.支付宝收不了钱怎么解封支付宝不能正常收钱原因有多种,不同原因解封方法不同,具体介绍如下:1、用户主动冻结账户:这时可以在手机端登录支付宝并主动解封即可。2、用户账户异常被冻结:需要在电脑端申请解冻,申请成功后才可以解封。3、用户未完善实名认证信息:用户实名认证后即可正常收付款。https://cadforex.com/licai/24820.html
6.支付宝二维码收不了钱怎么回事1、在支付宝【我的】页面点击【我的客服】。2、在客服页面点击上方【搜索框】。3、搜索【收钱码为什么不能使用】。4、请确认是通过支付宝客户端的扫一扫功能,其他http://edu.juexinw.com/etp/5649.html
7.亚马逊收款银行账户异常(亚马逊卖家账户的收款账户)5、要解除支付宝卖家收款受限需要根据实际情况做出不同的整改措施.。及时与支付宝客服沟通并提供必要的证明文件,耐心等待审核结果。 登录支付宝账号,进入“账单中心”页面,查看是否有支付宝向您发送的受限通知。 6、卖家支付宝账号无法收款,请联系卖家恢复支付宝账号再重新下单解决方法:登录支付宝账号进入其页面,选择并...https://www.amz123.com/t/4Egf1bvQ
8.黑客怎么才能转走你支付宝里的钱?黑客怎么才能转走你支付宝里的钱? 前言: 今天在微信公众号上无意间看到了一篇文章《黑客为什么不攻击支付宝?》,觉得写得很不错,这里和大家分享下。 文章转载自公众号:浅黑科技 用支付宝转账,要过三道大门: 第一道:登录密码; 第二道:支付密码; 第三道:AlphaRisk 风险控制系统。https://blog.csdn.net/weixin_46641057/article/details/113142937
9.建行生活钱包封存怎么解封?建行生活钱包里的钱用不了了怎么办?2,使用范围不同:建行生活钱包主要适用于中国建设银行用户的个人网上银行、手机银行等移动渠道,为用户提供便捷的移动支付服务;而龙支付可以在银联商户、微信、支付宝等不同场景下使用,满足用户的多元化支付需求。 3,注册方式不同:建行生活钱包需要绑定中国建设银行账户才能使用;而龙支付需要用户注册并绑定银行卡或信用卡等...https://www.qqtn.com/article/article_335624_1.html
10.救命钱被支付宝秒扣追回来了所以,当遭遇救命钱被支付宝误扣时,应选取合适的 *** 渠道,保留相关证据,并按法律规定追回被扣金额。合理 *** 能够维护个人权益,维护法律的公正性和规性。 花呗逾期支付宝余额怎么不被扣 在使用花呗和支付宝时,如果发生逾期还款的情况,用户的支付宝余额可能会被扣除来清偿逾期款。然而,有一些方法可以避免支付宝...https://m.qqddc.com/qiye/yqfenqizt/105817.html
11....办的支付宝,现在手机号不用了,朋友把钱转里了,怎么能把钱收...解析:1、若占用的支付宝账户是本人注册的,可以登录原账户,继续使用 。2、若不是本人注册,是通讯...https://www.64365.com/ask/6209740.aspx
12.为什么支付宝收不了钱呢?其他理财知识问答请问为什么支付宝收不了钱?我爱卡网友 2021-05-07 浏览:63027 全部回答 我爱卡卡友 2021-05-07 1.实名认证问题:可能是由于账号没有进行实名认证,没有实名认证不能进行收款交易; 2.支付宝系统核实:用户账户可能存在非正常交易行为,依据支付宝服务协议约定,暂停了账户部分功能的使用,建议更换账户并正确使用。 如果...https://www.51credit.com/wenda/879781.html
13.名人的励志故事作文(通用20篇)在平日的学习、工作和生活里,说到作文,大家肯定都不陌生吧,作文是人们以书面形式表情达意的言语活动。那要怎么写好作文呢?下面是小编帮大家整理的名人的励志故事作文,欢迎阅读,希望大家能够喜欢! 名人的励志故事作文 篇1 在去年的重庆铁人三项比赛的颁奖仪式上,冠军的领奖台上站着一位身材矮小的独臂小伙,格外引人注...https://www.yuwenmi.com/lizhi/xiaogushi/1939057.html