Ambatman (OP)
Legendary

Activity: 1106
Merit: 1413
Don't tell anyone
|
 |
May 26, 2026, 03:10:28 PM Last edit: May 26, 2026, 07:36:18 PM by Ambatman |
|
I will just blame it on me being bored So tried a little experiment by trying to send 1.05 merit And it sent as one Then tried 1.88 and it also sent as one So was quite disappointed approximation don't work. Then tried 0.9999999999 and it sent as 1. I know 0.9999 is numerically close to one but why doesn't others also undergo approximation.  Thank you in advance. The thread won't run long since its to satisfy curiosity.
|
|
|
|
Charles-Tim
Legendary

Activity: 2380
Merit: 6503
Leading Crypto Sports Betting & Casino Platform
|
 |
May 26, 2026, 03:17:01 PM |
|
So was quite disappointed approximation don't work.
What kind of disappointment? Theymos did not mention anything about merit approximation. Only where he talked about decimal is when someone sent you 1 merit, that you will generate 0.5 smerit which will not show until you receive another 1 merit. Merit approximation is not necessary since we have not decimals in the merits.
|
| ..Stake.com.. | | | ▄████████████████████████████████████▄ ██ ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ██ ▄████▄ ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██ ██████ ██ ██████████ ██ ██ ██████████ ██ ▀██▀ ██ ██ ██ ██████ ██ ██ ██ ██ ██ ██ ██████ ██ █████ ███ ██████ ██ ████▄ ██ ██ █████ ███ ████ ████ █████ ███ ████████ ██ ████ ████ ██████████ ████ ████ ████▀ ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██ ██ ▀▀▀▀▀▀▀▀▀▀ ██ ▀█████████▀ ▄████████████▄ ▀█████████▀ ▄▄▄▄▄▄▄▄▄▄▄▄███ ██ ██ ███▄▄▄▄▄▄▄▄▄▄▄▄ ██████████████████████████████████████████ | | | | | | ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ █ ▄▀▄ █▀▀█▀▄▄ █ █▀█ █ ▐ ▐▌ █ ▄██▄ █ ▌ █ █ ▄██████▄ █ ▌ ▐▌ █ ██████████ █ ▐ █ █ ▐██████████▌ █ ▐ ▐▌ █ ▀▀██████▀▀ █ ▌ █ █ ▄▄▄██▄▄▄ █ ▌▐▌ █ █▐ █ █ █▐▐▌ █ █▐█ ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█ | | | | | | ▄▄█████████▄▄ ▄██▀▀▀▀█████▀▀▀▀██▄ ▄█▀ ▐█▌ ▀█▄ ██ ▐█▌ ██ ████▄ ▄█████▄ ▄████ ████████▄███████████▄████████ ███▀ █████████████ ▀███ ██ ███████████ ██ ▀█▄ █████████ ▄█▀ ▀█▄ ▄██▀▀▀▀▀▀▀██▄ ▄▄▄█▀ ▀███████ ███████▀ ▀█████▄ ▄█████▀ ▀▀▀███▄▄▄███▀▀▀ | | | ..PLAY NOW.. |
|
|
|
Mia Chloe
Legendary

Activity: 1176
Merit: 2284
Contact me for your designs...
|
 |
May 26, 2026, 03:18:26 PM |
|
~snip
Well I just tried 1.9 and it sent one. It's probably a simple php code that tells the system if merit Is greater than 1 and decimal, ignore the fractionally numbers and send just the whole number but if the number put in is less than 1 and decimal send 1. I'm guessing if you try 0.2 the system will recognise as 1. If that holds then I think this illustration of the code I gave code possibly be what we have backend else maybe it's just a default way PHP handles numbers with decimal.
|
|
|
|
Charles-Tim
Legendary

Activity: 2380
Merit: 6503
Leading Crypto Sports Betting & Casino Platform
|
 |
May 26, 2026, 03:23:22 PM |
|
~snip
Well I just tried 1.9 and it sent one. It's probably a simple php code that tells the system if merit Is greater than 1 and decimal, ignore the fractionally numbers and send just the whole number but if the number put in is less than 1 and decimal send 1. I'm guessing if you try 0.2 the system will recognise as 1. If that holds then I think this illustration of the code I gave code possibly be what we have backend else maybe it's just a default way PHP handles numbers with decimal. It is better it sends 1 that to send more than 1. If you want to send 2 merit instead but only 1 was sent, you can wait 60 seconds and send the remaining 1 merit that you want to send, making 2 in total. Sending less is better in what you can easily send the remaining.
|
| ..Stake.com.. | | | ▄████████████████████████████████████▄ ██ ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ██ ▄████▄ ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██ ██████ ██ ██████████ ██ ██ ██████████ ██ ▀██▀ ██ ██ ██ ██████ ██ ██ ██ ██ ██ ██ ██████ ██ █████ ███ ██████ ██ ████▄ ██ ██ █████ ███ ████ ████ █████ ███ ████████ ██ ████ ████ ██████████ ████ ████ ████▀ ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██ ██ ▀▀▀▀▀▀▀▀▀▀ ██ ▀█████████▀ ▄████████████▄ ▀█████████▀ ▄▄▄▄▄▄▄▄▄▄▄▄███ ██ ██ ███▄▄▄▄▄▄▄▄▄▄▄▄ ██████████████████████████████████████████ | | | | | | ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ █ ▄▀▄ █▀▀█▀▄▄ █ █▀█ █ ▐ ▐▌ █ ▄██▄ █ ▌ █ █ ▄██████▄ █ ▌ ▐▌ █ ██████████ █ ▐ █ █ ▐██████████▌ █ ▐ ▐▌ █ ▀▀██████▀▀ █ ▌ █ █ ▄▄▄██▄▄▄ █ ▌▐▌ █ █▐ █ █ █▐▐▌ █ █▐█ ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█ | | | | | | ▄▄█████████▄▄ ▄██▀▀▀▀█████▀▀▀▀██▄ ▄█▀ ▐█▌ ▀█▄ ██ ▐█▌ ██ ████▄ ▄█████▄ ▄████ ████████▄███████████▄████████ ███▀ █████████████ ▀███ ██ ███████████ ██ ▀█▄ █████████ ▄█▀ ▀█▄ ▄██▀▀▀▀▀▀▀██▄ ▄▄▄█▀ ▀███████ ███████▀ ▀█████▄ ▄█████▀ ▀▀▀███▄▄▄███▀▀▀ | | | ..PLAY NOW.. |
|
|
|
Mia Chloe
Legendary

Activity: 1176
Merit: 2284
Contact me for your designs...
|
 |
May 26, 2026, 03:32:28 PM |
|
It is better it sends 1 that to send more than 1. If you want to send 2 merit instead but only 1 was sent, you can wait 60 seconds and send the remaining 1 merit that you want to send, making 2 in total. Sending less is better in what you can easily send the remaining.
I can relate to what ambatman is saying because I'm pretty sure the forum is using PHP codes for the merit system back end and in php decimal numbers are treated a little differently from whole number they are handled as floats so if in the code it didn't say explicitly to round up it won't round up. (int)1.05 ~ 1 (int)1.88 ~ 1 (int)0.9998 ~ 0 Something like this is casting I can't remember very much but I think it's how php handles numbers by default.
|
|
|
|
Pmalek
Legendary

Activity: 3598
Merit: 9486
|
 |
May 26, 2026, 03:32:50 PM |
|
I have never tried entering decimal numbers when sending merits, so I have no idea what would happen. We don't need them for this purpose. Theymos probably never anticipated that someone would attempt to send 1.987 merits instead of the whole number they want to send, so there is no rounding system. I know that you only did it for fun and as an experiment but decimals don't help or make it easier to send merits. Adding a single digit '2' is easier than entering 1.9898 and expecting rounding to happen.
|
| EARNBET | | | ⚽ 🏀 🏈 🏓 🎯 🥊 |
| ⚾ 🎾 ⛳ 🏐 🏏 🏎️ | | |
███████▄▄███████████ ████▄██████████████████ ██▄▀▀███████████████▀▀███ █▄████████████████████████ ▄▄████████▀▀▀▀▀████████▄▄██ ███████████████████████████ █████████▌████▀████████████ ███████████████████████████ ▀▀███████▄▄▄▄▄█████████▀▀██ █▀█████████████████████▀██ ██▀▄▄███████████████▄▄███ ████▀██████████████████ ███████▀▀███████████ | ....HIGHEST.... VIP REWARDS ✔ G U A R A N T E E D
| | | 🜲 | KING OF THE CASTLE $200K in prizes | | | ..PLAY NOW.. |
|
|
|
Sammysmart001
Member


Activity: 200
Merit: 75
|
 |
May 26, 2026, 03:33:23 PM |
|
I don’t really things merit approximation works here in the forum OP. It actually a floor function.
This was clear by thermos that when u receive 1 merit you earn 0.5 smerit which won’t actually show at ur dash still it 1. But let say 1.06 merit is send the system won’t carry the digit but rather it will be 1. So the 0.9998 case, it was round up at the database level as one, So far I think there is only 1,2,3…. Merit. And the reason why this is if approximation really works here I think it will be abuse
|
Learning Bitcoin | A P2P trader | Bybit & Opay
|
|
|
The Cryptovator
Legendary

Activity: 2996
Merit: 2610
Protect your privacy 🔏 it's very important
|
 |
May 26, 2026, 03:42:44 PM |
|
I will just blame it on me being bored So tried a little experiment by trying to send 1.05 merit And it sent as one Then tried 1.88 and it also sent as one So was quite disappointed approximation don't work. Then tried 0.9998 and it sent as 1.
I know 0.9999 is numerically close to one but why doesn't others also undergo approximation.
Thank you in advance. The thread won't run long since its to satisfy curiosity.
I am curious how that idea came into your mind. Don't you have other works lol? I haven't thought this way and never tried this merit send less than one. The code is probably set up to send the merits with decimals and then send only the main input; otherwise, it will be ignored above the decimal. So if before the decimal is zero, then you know that zero merits couldn't be sent. Hence, these are showing like this. I know it's your curiosity, but nothing is important or nothing is to be changed. We should follow the standard instead of thinking some other way.
|
|
|
|
osasshem
Full Member
 

Activity: 1140
Merit: 137
Creating a Safer Crypto Ecosystem
|
 |
May 26, 2026, 03:47:57 PM |
|
Ohh, this is how the smerit works. I know that the merit system doesn't work with decimals, but never really knew how the smerit is being earned. Now I know. In your curiosity, why give merit in decimal at all? Cause I'm sure you know it won't show as decimal on the account your gave it.
I have a question; what happens to your smerit after sending in decimals? Does it mean your smerit will also reduce as your gave in decimal?
|
|
|
|
Donneski
Sr. Member
  

Activity: 756
Merit: 265
Contact Hhampuz for campaign
|
 |
May 26, 2026, 03:54:55 PM |
|
Experiments like this can only be birthed by boredom just like you actually said  . The only explainable reason why 0.9999 did round up to 1 while 1.88 still dropped to 1 should be down to how SMF actually handles floats behind the scenes. If someone sends you 1 merit, the 0.5 sMerit is not wasted; it is just not shown until you get another merit point.
The above rule means that fractions can be internally tracked through the backend but since balances must be whole numbers, the "send" function probably forces integers behind the scenes by removing the decimals and leaving you with whole numbers. Now to the part you also experimented 0.9999, the number is extremely close to 1 that the system had to round it up to the nearest whole number which is 1. So in a nutshell, the forum's UI accepts decimals but the database is programmed to force whole numbers.
|
|
|
|
|
mcdouglasx
|
 |
May 26, 2026, 04:04:43 PM |
|
The field where we enter the merit amount when sending is a text field and performs some rather strange validations. For example, I did a test sending 1 merit to the OP, but in the field I put "1hello," and it was sent completely ignoring the text. But then I tried with "hello1," and it didn't work.
I suppose the PHP parser only reads the digits from the beginning. "1" is a number, "h" is not, so it stops, preserving the 1. However, when sending "hello1," it detects "h" and immediately stops, invalidating the merit.
It should also have some kind of rounding of the decimals, but I assume it's not perfect rounding, or at least after we go beyond 1, this rounding is probably only valid up to 0:1, because it seems that from there on, they are truncated (1.88 = 1).
update:
I suppose the rounding is from 0 to 1 (0:1) because of the logic that for every merit received, we obtain 0.5 merits, which are not visible.
|
|
|
|
promise444c5
Legendary

Activity: 1120
Merit: 1102
All things are numbers
|
 |
May 26, 2026, 05:28:09 PM Last edit: May 26, 2026, 05:59:27 PM by promise444c5 Merited by vapourminer (1) |
|
I suppose the rounding is from 0 to 1 (0:1) because of the logic that for every merit received, we obtain 0.5 merits, which are not visible.
floor() .. only rounds down. Checks will just be “0” or match lesser than zero [i guess].. [update] Since it type- text , then probably direct casting or intval()parseInt() works for JS but NaN is kinda odd to work with
|
|
|
|
Cookdata
Legendary
Online
Activity: 1778
Merit: 1468
Not Your Keys, Not Your Bitcoin
|
 |
May 26, 2026, 05:30:25 PM |
|
I'm seeing suggestions of php functions like floor() and int() but OP said he tried sending 0.99 merit, that means it round the figure as 1 and it went through, both floor and int round numbers like 0.99 will change the input to 0, 1.5 to 1. If sending 0.99 merit gives 1 merit, then the two functions was not used in this case because it should have give 0 merit which should return invalid.
OP also tried 1.8 and the result is 1 merit, then it could be any of the two inbuilt function in this case. That's beg the question which logic Theymos used to create the meriting page.
The logic could be a conditional statements or nested ones. I'm not too good at Javascript but the merit input is not one inbuilt function or as some suggested unless there is a function that did the job here that we don't know.
|
|
|
|
TryNinja
Legendary

Activity: 3668
Merit: 10947
@ List of no-KYC websites: https://bitlist.co
|
 |
May 26, 2026, 05:42:44 PM |
|
Are you sure about the 0.9998 one? If I try to send 0.9998 merits, I get the forum error: "Invalid amount"
I managed to send 1.88 (became 1), so it's probably a simple PHP floor() function. That would explain why 0.9 becomes 0 and gives an error.
|
|
|
|
PX-Z
Legendary

Activity: 2282
Merit: 1372
Wallet Transaction Notifier - @txnNotifierBot
|
 |
May 26, 2026, 05:48:17 PM |
|
It's either on frontend (javascript) and server validation (PHP) intervention as well as in database if datatype is integer and not decimal, so no decimals will work because that's how merit sending technically works. .., but in the field I put "1hello," and it was sent completely ignoring the text. But then I tried with "hello1," and it didn't work.
In javascript validation parseInt("1hello") will become 1, but parseInt("hello1") will become NaN. Same on PHP intval("1hello") results 1 and intval("hello1") becomes 0. 0.9999 works probably due to Math.round(value) or round(value) validation. This is just my thoughts, i didnt check js validation as i used mobile phone from posting this.
|
|
|
|
|
SuperBitMan
|
 |
May 26, 2026, 05:51:03 PM |
|
But they don’t send half merit, is either you are sending 1 and above or is there something I don’t know about the merit sending system  , because of this your thread I just decided to do some research on the merit sending system and it very clear that you can’t send anything more than 1 merit meaning you can’t send half. Sometimes being too bored can make you think a lot of things and you can even do unexpected things  right now you need a bottle of beer to cool you down  .
|
|
|
|
|
Z_MBFM
|
 |
May 26, 2026, 05:59:29 PM |
|
I will just blame it on me being bored So tried a little experiment by trying to send 1.05 merit And it sent as one Then tried 1.88 and it also sent as one So was quite disappointed approximation don't work. Then tried 0.9998 and it sent as 1.
I know 0.9999 is numerically close to one but why doesn't others also undergo approximation.
Thank you in advance. The thread won't run long since its to satisfy curiosity.
Since merit points are only integer values, the program is designed this way. Any number less than 1 is invalid and 1 or less than 2 will automatically count as 1, and anything from 2 to 2.99 will count as 2. There are two systems that work here, when someone gets merit, 50% of the merit number is automatically counted as Smerit. This program has been set up to avoid the complexity of this calculation and to keep the values integer. I tried to send less then 1 like 0.99, 0.8, 0.7 Value but it shows invalid. so it proof less then 1 will not count as a valid number It work like <?php
// User input (can be decimal) $inputMerit = 2.75;
// Convert Merit to integer // 1–1.99 = 1, 2–2.99 = 2, 3–3.99 = 3 $merit = floor($inputMerit);
// Minimum value is 1 if ($merit < 1) { $merit = 1; }
// Generate actual sMerit (50%) $actualSmerit = $merit * 0.5;
// Display only whole numbers (hide .5 values) $displayedSmerit = floor($actualSmerit);
// Show results echo "Input Value: " . $inputMerit . "<br>"; echo "Final Merit: " . $merit . "<br>"; echo "Actual sMerit: " . $actualSmerit . "<br>"; echo "Displayed sMerit: " . $displayedSmerit;
?>
Note - In the context of my description, I converted it into a program for the sake of understanding. Here, I also take the help of AI.
|
|
|
|
|
Zoomic
|
 |
May 26, 2026, 06:52:44 PM |
|
I will just blame it on me being bored So tried a little experiment by trying to send 1.05 merit And it sent as one Then tried 1.88 and it also sent as one So was quite disappointed approximation don't work. Then tried 0.9998 and it sent as 1.
I know 0.9999 is numerically close to one but why doesn't others also undergo approximation. xxx Thank you in advance. The thread won't run long since its to satisfy curiosity.
Some people's brain functions so differently, maybe on a higher level. I actually do not see myself trying something different from a whole number in the merit box. I'll always put a whole number, unless there is a forum bug bounty, that's when you'll see me run such kind of experiments. However, I think that such approximations or deproximations depends on how data is received in the back end. But I understand your point that there needs to be consistency. But since it works, that might not be a headache on theymos to re-visit.
|
|
|
|
Ambatman (OP)
Legendary

Activity: 1106
Merit: 1413
Don't tell anyone
|
 |
May 26, 2026, 07:32:09 PM |
|
Are you sure about the 0.9998 one? If I try to send 0.9998 merits, I get the forum error: "Invalid amount"
I managed to send 1.88 (became 1), so it's probably a simple PHP floor() function. That would explain why 0.9 becomes 0 and gives an error.
I just sent to you using similar format but it was 0.99999999 I guess I was just clicking nine's to see if it would break. It's showing on the image I posted while sending to fillippone I am curious how that idea came into your mind. Don't you have other works lol? I haven't thought this way and never tried this merit send less than one.
Lol I'm on leave so alot of time to do what a normal person shouldn't be doing.
|
|
|
|
promise444c5
Legendary

Activity: 1120
Merit: 1102
All things are numbers
|
I managed to send 1.88 (became 1), so it's probably a simple PHP floor() function. That would explain why 0.9 becomes 0 and gives an error.
I just sent to you using similar format but it was 0.99999999 I guess I was just clicking nine's to see if it would break. It's showing on the image I posted while sending to fillippone You probably tried more than 16 9s. Not sure how it's implemented, but somehow it detects it as a float and triggers a floating precision error.. I did some little research and found out PHP uses the IEEE 754 double-precision standard. " PHP typically uses the IEEE 754 double precision format, which will give a maximum relative error due to rounding in the order of 1.11e-16." - Source. So once you crossed the maximum limit slot for the "Significand precision [53 bits (52 explicitly stored)].. approximately 16 decimal digits", it means it runs out of space and rounds to the nearest binary fraction from the way I understand it. Source: https://en.wikipedia.org/wiki/Double-precision_floating-point_format
|
|
|
|
|