四則演算はdecimal.Decimal同様、メソッドとして提供されます。, Go Playground で試すと正しく10が表示されます。 文字列で保存しておいて取得時にはdecimal.NewFromString()でパースすれば誤差なく保存できそうです。 すなわちレシーバに対する演算結果を返り値として返すので扱い易くなっています。, Go Playgroundで試すとちゃんと10が出力されます。 メルペイスマート払い(定額)でお得なキャンペーンがあったので紹介します。私は今まで定額(リボ払いみたいなやつ)を試したことがないので詳細な仕組みを知りませんでした。今回自分で調べて、分かった内容をレポートします。 FLOAT型で保存すると誤差が発生してしまうので、分母と分子で別々のカラムに保存しておくか、STRING型で保存などです。 ところで、メルカリでは「メルペイスマート払い(定額)で全員に50%ポイント還元(還元上限P10,000)」を開催中です。 わかりやすく言うと、 「2万円分の買い物をメルペイ(iDを含む)決済すると、60日の期間限定ポイント10,000円分がもらえるよ」 https://jp.merpay.com/news/2020/12/2020smartpay/ 幹事「飲み会の会費を現金で徴収しまーす!」みんな「はーい!」幹事「支払いは楽天カードで!」←こいつ, https://k-tai.watch.impress.co.jp/img/ktw/docs/1293/827/01_o.jpg, https://jp.merpay.com/news/2020/12/2020smartpay/, https://campaign.merpay.com/jp/2020-12-smartpay/, https://k-tai.watch.impress.co.jp/docs/news/1293827.html, http://anago.2ch.sc/test/read.cgi/bizplus/1607417432/. メルペイスマート払いの開発をしている Credit Design というチームに所属しています。, 私は2019年の入社以来、「メルペイスマート払い(定額払い)」(以下、定額払い)の開発を担当しており、今年の7月にようやくリリースすることができました。 2の31乗までの精度であれば誤差なく小数点数を扱うことができます。, サンプルから分かるようにdecimal.Decimal型のメソッドは*big.Rat型とは違い、イミュータブルです。 メルペイのスマート払い(定額)のキャンペーンがお得なので年末年始で早速活用しています。 メルペイでは定額払いの利用でもれなく50%還元(上限1万円)という超太っ腹キャンペーンなので2万円の利用を定額払いすると 1万円分のポイントが還元 されます。 但し、*big.Ratは扱いづらいというデメリットがあります。 この辺りはシステムの要件によって決まってくるはずです。, メルペイでは実際にgo-bpsを使って計算した手数料を Cloud Spanner に保存・取得するようなコードが実装され本番環境でも稼動しています。, Goでベーシスポイントを扱うためのパッケージgo.mercari.io/go-bpsを紹介しました。 またポインタ型となるため変数aが更新されると、aが代入れている変数cも予期せず更新されてしまいます。, 冒頭でも述べたように料率をデータベースに保存したい時にはひと工夫が必要になります。 メルペイスマート払い(定額払い)は要審査. フリマアプリ「メルカリ」のスマホ決済サービス・メルペイは7月7日から、商品購入代金を後からまとめて支払える「メルペイスマート払い」に、毎月定額で支払いができる「定額払い」の提供を開始したが、これに《サブスクを装ったリボ払いでは》などと批判 これは0.01が2進数で表現できないため、内部的に近似値が使われ、丸め誤差が生じているせいです。, cは大きな値aと小さな値bを加算した結果になっています。 次に情報落ちの例をみてみます。, Go Playgroundで実行してみると、正しく1000000000000.000001と出力されます。, このように*big.Rat型を用いれば誤差なく小数を扱えそうなことが分かります。 去年のmercari.goでの発表時には本番実績はなく、リポジトリ自体もプライベートリポジトリとなっていましたが晴れてオープンソースとして公開することができました。 メルペイスマート払い50%還元適用には3月まで定額支払いが残っていることが必須条件なため、早速シュミレーションしたところこのようになりました。456円の手数料負担で9840ポイントゲットする事が … 実質的にクレカのリボ払いキャンペーンな定額払いキャンペーン; 1.2. しかしながらパースに失敗したり、そもそも数値を文字列として保存すると集計時などで後々問題になることは想像に難くありません。, 上記のような悩みがあったので社内の Go Friday で小数点数の扱いについて質問したところ教えてもらったのがベーシスポイント(Basis Point)です。 以下にサンプルコードを挙げてみます。, bps.NewXxx()が*bps.BPSオブジェクト(rate1など)を返します。 こんばんはようやく冬休みゆっくりおうち周辺で過ごしています株は大納会でしたねー日経はマイナスなのになぜか持ち株は調子を戻していました今日は、メルペイスマート払… 決済事業をやる上では必須といえる機能であり、小数の扱いについて考える必要性がでてきます。, 一方でこれらの値は時期によって変動することもありえます。 以降では下に挙げる3つのGoパッケージについて取り上げ、メリット・デメリットをそれぞれ確認します。, *big.Ratは Go の標準パッケージで有理数を表現するための型を提供します。 以下サンプルコード, Go Playgroundで試してみるとちゃんと10.0となることが分かります。 メルペイスマート払い(定額払い)は、クレジットカードのリボ払いと同じ感じの仕組みで、ユーザーが多重債務になるリスクがあります。 なので、メルペイ側の審査を通さないと利用ができません。 例を挙げると以下のような手数料が存在します。, トランザクション単位で固定額が発生する手数料もありますが、多くのものは○%などの料率計算が必要です。 big.NewRat(1, 3)で3分の1を表現する、といった具合です。 また、期間中に5000円以上の決済を定額払いに切り替えると、「メルペイスマート払い(定額)」に設定した金額の50%相当分のポイントが還元される。期間中のポイント還元上限は1万ポイント。 キャンペーンで一時的に手数料を無料にしたり、料率を変更したりすることは往々にして発生しうるので、要件によっては固定値ではなく、データベースに保存することも考えないといけません。, 実際にGo Playgroundで確認してみると以下のように出力され、10にはなりません。 期間中、メルペイスマート払いを利用して5000円以上決済すると、抽選で3万人に1万ポイントが当たる。5000円以上の決済1回につき、抽選に1口エントリーできる。1人あたりの当選回数は1回まで。, また、期間中に5000円以上の決済を定額払いに切り替えると、「メルペイスマート払い(定額)」に設定した金額の50%相当分のポイントが還元される。期間中のポイント還元上限は1万ポイント。2021年3月1日0時の時点で定額払い利用が継続されているユーザーが対象となり、それ以前に清算が完了した決済は対象外となる。, いずれもポイント付与は2021年3月末頃を予定し、有効期限は付与日を含めて60日。ポイントおよびメルペイ残高を利用した決済分は利用金額に含まれない。また、一部の店舗やカテゴリーでの購入はキャンペーンの対象外となる。, 「メルペイスマート払い」は、当月のメルペイの利用代金を翌月にまとめて支払えるサービス。「メルペイスマート払い(定額)」は、実質年率15%の手数料で、毎月一定の金額で支払えるサービス。, □関連リンク 2万円使うと1万円還元、メルペイが「定額スマート払い」で大規模還元 12月8日から来年1月18日まで 小口貴宏(Takahiro Koguchi) , @TKoguchi787 メルペイの使い方〜メルペイスマート払い(定額払い)の設定方法について〜 対象にはふるさとチョイスも ということで、2万円の買物までなら、ほぼ50%還元となる。 至急 メルペイの定額払いに詳しい方教えてください!! 今まだ使っていない人に1000pもらえるキャンペーンのお知らせが来ました 10月末までの清算は手数料無料とありますが 今回だけ( 9月分の利用で10月に支払い分 )利用して、後は定額を使わないことは出来ますでしょうか? メルペイの定額払いを利用したいのですが、アプリで簡単本人確認が出来てないとエラーが出ました。 今、行われている本人確認しなければ定額払いは出来ないのでしょうか? メルペイは、スマートフォン向け決済サービス「メルペイ」において、あと払いサービス「メルペイスマート払い」の利用促進キャンペーン「年末年始まるっと還元キャンペーン」を開始した。キャンペーン期間は2021年1月18日まで。 メルペイ定額払いのリスク、年利15%の手数料について解説。借金相談2000件以上。無料相談。神奈川県厚木市の弁護士です。土日夜間の相談も対応可能です。お気軽にお電話下さい。 https://k-tai.watch.impress.co.jp/docs/news/1293827.html, リボ払いになるのは定額払い 5,000円以上のメルペイ定額払いで50%還元 1.1. この定額払いの手数料計算のために、「1万分の1を1とする単位」であるベーシスポイントを扱うGo言語のパッケージ go.mercari.io/go-bps を作成しました。 (*big.Ratの扱いにくさから筆者はまだ試用するに至っていません), github.com/shopspring/decimal は固定小数点数を扱うパッケージです。 当然0.01%以下の桁がでてくると小数で表現する必要性が生じるため、アプリケーション上小数点以下の桁数をどこまで扱う必要があるかによって基底の単位を決める必要があります。, go.mercari.io/go-bps はこのベーシスポイントをGoで扱うためのパッケージです。 このコードをGo Playgroundで実行してみると以下のような出力となります。, これらの理由から、金銭計算にはfloat64といった浮動小数点数を使わずに小数点数を扱う必要性がでてきます。 メルペイでバックエンドエンジニアをしている iwata です。 Copyright © 2019 キャッシュレス速報 All Rights Reserved. メルペイの「スマート払い」には2種類あり、①翌月に一括払いする方法 ②分割で月々定額を支払う方法 があります。それぞれの仕組みと利用方法をご説明します。②分割で月々定額を支払う方法は毎月の支払いが少ない気がしますが手数料がかかるので要注意です。 メルペイ後払いのように、支払いを翌月以降に繰り越せる「後払い」サービスも増えてきています。 このような方法は、クレジットカードを持っていない人でも手軽に利用できることから人気です。 支払いまでに猶予があるということは、現金化を考える際に活用 パーセントが100分の1を1とし、百分率(%)と呼ばれるのに対して、ベーシスポイントは1万分の1を1とする単位で万分率(‱)と呼ばれます。 メルペイスマート払いの開発をしている Credit Design というチームに所属しています。 私は2019年の入社以来、「 メルペイスマート払い(定額払い) 」(以下、定額払い)の開発を担当しており、今年の7月にようやくリリースすることができました。 買ったものいくつかを定額払い(利子付き分割払い)にできる, 引用元:http://anago.2ch.sc/test/read.cgi/bizplus/1607417432/, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, 1万Pって前にリボ利用者ならフツーに抽選とかでなくキャッシュバックしてたからな。こんなんやるやついるんか?, 本人確認してってきてるわ。これ免許所かマイナンバーとか顔がわかるのしか駄目とか頭おかしいのかな。たかがメルペイの為にそんなことないするわけないだろ。なに勘違いしてだ, 日本テレビホールディングスは、8月22日から放送する番組「24時間テレビ」の募金企画で、QRコードを使ったキャッシュレス決済による募金を受け付けを始めた。, KDDIは7月13日、スマホ決済サービス「au PAY」が、ヴィレッジヴァンガード13店舗で利用可能になったと発表した。対象店舗は順次拡大するとのこと。, ポイント中毒Sさんはクレジットカード、ブランドデビットカード、電子マネーにスマホ決済アプリなどを使い、ほぼキャッシュレスで暮らしています。結果、気が付いたらお金の使いすぎに。コンビニばかりで食べ物を買い、時には日用品も買っていたので、買い物するものの単価が上がり、支出が多くなっていたのです。, 1: 以下、5ちゃんねるからVIPがお送りします 2020/01/18(土) 23:59:32.819 ID:7a01X7po0 mercari.goでの発表時に公開して欲しいという声を少なからずいただいていましたが、定額払いの実装で実用に耐えうることが確認できたタイミングでの公開となりました。, パッケージ内でやっていることは整数の桁上げ、桁下げをしているだけなのですが、単純な整数の扱いであるが故にベーシスポイントの型が定義されていることでコードの可読性が向上できていると感じています。, 明日の Merpay Advent Calendar 2020 執筆担当は、 Solutionsチーム の @vvakame さんです。引き続きお楽しみください。. 1. https://campaign.merpay.com/jp/2020-12-smartpay/, 2020年12月8日 17:14 金利(手数料)は翌日からの日割計算 それが、メルペイスマート払い(定額)最大1万円分ポイント還元だ。 キャンペーン期間中、5,000円以上の決済をメルペイスマート払いで行い、定額払いに切り替えると、メルペイスマート払い (定額) に設定した金額の 50%相当分のポイントが還元 される。 目次 . 一方で Google Cloud Spanner であれば先日対応されたNUMERIC型を使用することで*big.Ratへの変換を自動的に行えるようです。 次に大きい数値と小さい数値を足してみます。, *bps.BPS#Amounts()は小数点以下を切り捨てるので1000000000000と表示されますが、インスタンス内では情報落ちせずに値を保持していることがわかります。 「メルペイ」のキャンペーン、「年末年始まるっと還元キャンペーン」の内容は?最大、10,000ポイント還元!フリマアプリを運営する「メルカリ」では、スマホ決済サービス「メルペイ」で「メルペイスマート払い(定額)」を利用すると最大1万円分のポイ ニュースリリース ちょうど1年前に、 mercari.go #12 で「料率計算における小数の扱いについて」として発表しましたが、当時はオープンソースとして公開していませんでした。 以下のサンプルコードをみてください。, *big.Rat型のメソッドはミュータブルであるため、a.Add(a, b)を実行するとレシーバであるa自身の値も更新されます。したがって変数aとzは同じ値1/1となります。 やる馬鹿いんの?, 2019年のクレジットカードや電子マネーなど、キャッシュレス決済の民間消費に占める比率が、前の年から2.7ポイント増えて26.8%となり、過去最高を更新したことがわかった。. メルペイ定額払いで50%(最大1万円分)還元キャンペーンが分かりにくいので纏めてみた ※細かな計算間違いはご容赦下さい。 ※分かりやすく5000円以上と表記している数値は全て5001円以上に置き換えで … 次に情報落ちについてはどうでしょうか。, こちらも誤差なく1000000000000.000001と出力されます。 ケータイ Watch キャンペーンページ したがって100万分の1までであれば整数として処理可能です。, データベースに保存する際は必要な精度に応じて整数で保存できます。 ベーシスポイントを用いると0.01%までを整数として扱うことができるというわけです。 https://play.golang.org/p/MbsPWk5FD2d, データベースに保存する際はどうでしょうか。 今回は「メルペイスマート払い(定額払い)」(以下、定額払い)についてご紹介します。 定額払いは、「 メルペイスマート払い 」の 購入代金の清算を月々に分けることができるサービスです 。 メルカリのお買い物はもちろん、街のお店でのお買い物にも使うことができます。 【メルペイスマート払い(定額)で最大1万円分ポイント還元】 キャンペーン期間中、5,000円以上の決済を定額払いに切り替えると、「メルペイスマート払い(定額)」に設定した金額の50%相当分のポイントがもれなく還元されます。 https://play.golang.org/p/lb2IcejpqSa, go-bpsではパーツパーミリオン(ppm)を最小の単位として扱っています。つまり*bps.BPS.valueに*big.Intとして保持している値はパーツパーミリオンです。 ではどのような方法が考えられるでしょうか? メルカリのスマホ決済サービス「メルペイ」は7月7日、後払い式「メルペイスマート払い」の新しい支払い方法「定額払い」の提供を開始した。通常のメルペイスマート払いは、購入月の翌月中に一括して代金を支払う必要があるが、メルペイスマート払い(定額 定額払いではなく、5000円以上の商品を一括でメルペイスマート払いで支払った場合、3万名に1万ポイントが当たるとのことです。 定額払いはなんだかメンドウそう・・・という方は、こちらのほうに参加してみてくださいね。 定額払いとは、メルペイスマート払いの購入代金の清算を月々にわけることができるサービスです。 ※定額払いの利用には申し込みが必要です。申し込み方法はこちら ※20歳未満のお客さまはご利用いただけません 定額払いご利用の流れ 定額払いをご利用いただく方法は以下の通りです。 スマート払いの中にさらに定額払いという選択肢があって 今回オープンソースとして公開しましたので、改めてパッケージを紹介します。, お金のやりとりがあると色々と手数料を計算する機会があります。 1万分の1の値まででよければ*bps.BPS#BasisPoints()の返す整数を保存すればよく、100万分の1の値まで必要であれば*bps.BPS#PPMs()の整数を保存する必要があります。 メルペイスマート払いキャンペーン概要; 利用できる支払い; ふるさとチョイスでふるさと納税; 定額払いに切り替える; メルペイスマート払いキャンペーン概要. ただし『メルペイスマート払い(定額)』を利用できるのは20歳以上の成人のみだ。 “利用金額に対して年率15%” の定額払い手数料がかかるから、くれぐれも計画的に利用してほしい。詳しくはメルペイの公式サイトを確認してくれ。